import { request } from "../../request/index";
Page({
  data: {
    //左侧的菜单数据;
    leftMenuList: [],
    //右侧的商品数据;
    rightContent: [],
    //当前激活选项的下标
    currentIndex: 0,
    //右侧内容滚动条距离顶部的距离
    scrollTop: 0,
  },
  //这个变量没有定义data里面;  它的变化不会引起视图的更新;
  Cates: [],
  onLoad: function (options) {
    //web本地存储和小程序里面有一点区别
    //    1:web localStorage.setItem('key','value');
    //          localStorage.getItem('key');
    //    //小程序中---不存在类型转化,-----
    //    wx.setStorageSync(key, data);
    //    wx.wx.getStorageSync(key);

    //   2:先判断一下本地存储中有没有旧的数据----在存得时候可以给他存一个时间;
    //   没有旧数据---直接去发送请求
    //   有旧的数据----同时旧的数据没有过期，就直接去使用;
    //1:先获取
    const Cates = wx.getStorageSync("cates");
    //2:判断
    if (!Cates) {
      console.log(1);
      //不存在，发送请求;
      this.getCates();
    } else {
      //有旧的数据;
      if (Date.now() - Cates.times > 1000 * 10) {
        //过期了 ---重新请求
        this.getCates();
      } else {
        //没有过期;
        this.Cates = Cates.data;
        let leftMenuList = this.Cates.map((v) => v.cat_name);
        console.log(leftMenuList);
        let rightContent = this.Cates[0].children;
        //给data里面的变量进行赋值;
        this.setData({
          leftMenuList,
          rightContent,
        });
      }
    }
  },
  async getCates() {
    const res = await request({
      url: "/categories",
    });
    this.Cates = res;
    //把接口请求回来的数据给存到本地;
    wx.setStorageSync("cates", {
      times: Date.now(),
      data: this.Cates,
    });
    //左边的数据
    let leftMenuList = this.Cates.map((v) => v.cat_name);
    console.log(leftMenuList);
    let rightContent = this.Cates[0].children;
    //给data里面的变量进行赋值;
    this.setData({
      leftMenuList,
      rightContent,
    });
  },
  //左侧菜单的点击事件
  handleItemTap(e) {
    /**
     * 1:获取被点击身上的下标
     * 2:给data的currentIndex赋值就能改变左边的选中效果
     * 3:根据不同的索引去渲染右边的内容;
     */
    const { index } = e.currentTarget.dataset;
    let rightContent = this.Cates[index].children;
    this.setData({
      currentIndex: index,
      rightContent,
      //重新设置一下右边的scorll-view的距离顶部的距离
      scrollTop: 0,
    });
  },
});
